// 版权归陈超所有

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "CC_HUD.generated.h"

class UCC_AttributeMenuWidgetController;
class UAttributeSet;
class UAbilitySystemComponent;
struct FWidgetControllerParams;
class UCC_OverlayWidgetController;
class UCC_UserWidget;
/**
 * 
 */
UCLASS()
class CC_AURA_API ACC_HUD : public AHUD
{
	GENERATED_BODY()

public:

	UCC_OverlayWidgetController* GetOverlayWidgetController(const FWidgetControllerParams& FWCParams);

	UCC_AttributeMenuWidgetController* GetAttributeMenuWidgetController(const FWidgetControllerParams& FWCParams);

	void InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS);

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TObjectPtr<UCC_UserWidget> OverlayWidget;		//覆盖层小部件
	
	UPROPERTY(EditAnywhere)
	TSubclassOf<UCC_UserWidget> OverlayWidgetClass;		//覆盖层小部件类

	UPROPERTY()
	TObjectPtr<UCC_OverlayWidgetController> OverlayWidgetController;	//覆盖层小部件控制器
	
	UPROPERTY(EditAnywhere)
	TSubclassOf<UCC_OverlayWidgetController> OverlayWidgetControllerClass;		//覆盖层小部件的类、子类
	
	UPROPERTY()
	TObjectPtr<UCC_AttributeMenuWidgetController> AttributeMenuWidgetController;	
	
	UPROPERTY(EditAnywhere)
	TSubclassOf<UCC_AttributeMenuWidgetController> AttributeMenuWidgetControllerClass;
	
};
